From: Florian Müllner Date: Thu, 16 May 2013 17:35:12 +0000 (+0200) Subject: appDisplay: Also account for folder popup's close buttons X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~4152 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0eba0f8dd3056c79c000826b5fa32622708bd827;p=gnome-shell.git appDisplay: Also account for folder popup's close buttons As the close button of folder popups overlaps at the top, it ends up being cut off if the folder is located at the very top of the view. Fix this glitch by taking the button's overlap into account in that case. https://bugzilla.gnome.org/show_bug.cgi?id=694371 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 097c8e541..7f92d12fd 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -598,9 +598,11 @@ const FolderIcon = new Lang.Class({ // Position the popup above or below the source icon if (side == St.Side.BOTTOM) { this._popup.actor.show(); + let closeButtonOffset = -this._popup.closeButton.translation_y; let y = this.actor.y - this._popup.actor.height; - this._popup.parentOffset = y < 0 ? -y : 0; - this._popup.actor.y = Math.max(y, 0); + let yWithButton = y - closeButtonOffset; + this._popup.parentOffset = yWithButton < 0 ? -yWithButton : 0; + this._popup.actor.y = Math.max(y, closeButtonOffset); this._popup.actor.hide(); } else { this._popup.actor.y = this.actor.y + this.actor.height; @@ -647,11 +649,11 @@ const AppFolderPopup = new Lang.Class({ this.actor.add_actor(this._boxPointer.actor); this._boxPointer.bin.set_child(this._view.actor); - let closeButton = Util.makeCloseButton(); - closeButton.connect('clicked', Lang.bind(this, this.popdown)); - this.actor.add_actor(closeButton); + this.closeButton = Util.makeCloseButton(); + this.closeButton.connect('clicked', Lang.bind(this, this.popdown)); + this.actor.add_actor(this.closeButton); - this._boxPointer.actor.bind_property('opacity', closeButton, 'opacity', + this._boxPointer.actor.bind_property('opacity', this.closeButton, 'opacity', GObject.BindingFlags.SYNC_CREATE); global.focus_manager.add_group(this.actor);